package cn.com.joycode.nimble.trans;

import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Optional;

/**
 * 证明材料
 */

@AllArgsConstructor
public enum Evidentiary {

    /**
     * 税务登记证
     */
    TAX_REG_LICENSE("01", "税务登记证"),

    /**
     * 法人身份证人像面
     */
    LEGAL_IDC_OBVERSE("02", "法人身份证人像面"),

    /**
     * 法人身份证国徽面
     */
    LEGAL_IDC_REVERSE("03", "法人身份证国徽面"),

    /**
     * 开户许可证
     */
    ACCOUNT_OPENING_PERMIT("04", "开户许可证"),

    /**
     * 银行卡正面
     */
    BANK_CARD_OBVERSE("05","银行卡正面"),

    /**
     * 银行卡反面
     */
    BANK_CARD_REVERSE("06","银行卡反面"),

    /**
     * 结算人身份证人像面
     */
    STM_IDC_OBVERSE("07", "结算人身份证人像面"),

    /**
     * 结算人身份证国徽面
     */
    STM_IDC_REVERSE("08", "结算人身份证国徽面"),

    /**
     * 门头照
     */
    STORE_PIC("10", "门头照"),

    /**
     * 内景照
     */
    INSIDE_SCENE("11", "内景照"),

    /**
     * 收银台照
     */
    BIZ_PLACE("12", "经营场所（含收银台照）"),

    /**
     * 营业执照
     */
    LICENSE("13", "营业执照"),

    /**
     * 非法人结算授权函
     */
    AUTH_LETTER("26", "非法人结算授权函"),

    /**
     * 压缩包
     */
    ZIP("00", "压缩包");

    @Getter
    private String code;

    @Getter
    private String desc;

    public static Optional<Evidentiary> parse(String value) {
        for (Evidentiary evidentiary : Evidentiary.values()) {
            if (StrUtil.equalsAnyIgnoreCase(value, evidentiary.name(), evidentiary.code)) {
                return Optional.of(evidentiary);
            }
        }
        return Optional.empty();
    }

}
